The disclosure relates generally to providing image content to, and displaying image content on, displays, and more particularly to methods and apparatus for minimizing input lag and other problems associated with providing and displaying image content on variable refresh rate displays.
Variable refresh rate displays typically operate within a range of supported refresh rates in which the displayed image must be updated periodically. For example, a variable refresh rate display may have a minimum display refresh rate, and a maximum display refresh rate, whereby the minimum and maximum display refresh rates are not equal. Problems may occur if a display is not updated at a rate within its supported display refresh rate range. For example, if the image is updated at a slower rate than the minimum supported display refresh rate, the display may flicker, causing unwanted discrepancies in the viewed image. Thus, ideally images would be rendered and made available to a display at a rate within its supported display refresh rate range.
However, sometimes image rendering technologies may provide rendered images at render rates that fall outside a variable rate display's supported display refresh rate range, causing unwanted discrepancies in the viewed image such as those described above. In an attempt to solve these problems, some existing video display solutions may allow for refreshing a display with the same frame more than once, causing additional delays before content from a new frame is displayed. For example, a variable refresh rate display may have a display refresh range of 30 Hz to 120 Hz. If a frame is rendered and provided to the display, and no new frame is rendered at a rate faster than 30 Hz, but slower than 120 Hz, from the last provided frame, existing solutions may refresh the display with the same, already provided frame. If then a new frame is rendered at a rate faster than 120 Hz from the second time the display was refreshed with the previous frame, the new frame is not displayed until the next available refresh cycle. Thus, these solutions cause a new frame to wait until the next refresh cycle before being displayed. In the case when the render rate is much higher than the maximum supported display refresh rate, some solutions may provide for limiting the render rate of a new frame to the maximum supported display refresh rate, similarly causing a new frame to wait additional time before being displayed. These solutions, however, tend to increase input lag, e.g., the amount of time between when a change to a display image is provided and when the result appears on the display. For example, in video gaming, a key desire is to minimize input lag, so that when a user provides for an action (e.g. hits a key to move a character), the result of that action is seen as quickly as possible on the display.
In an attempt to reduce input lag, some prior art solutions allow for “image tearing” in fixed refresh rate displays, whereby anytime a new frame is made available while a display is being refreshed with display content from a previous frame, the display switches to provide content from the new frame, beginning with the scan line that is currently being refreshed (i.e. current scan line). The result is a tearing of the image, whereby part of the image is from the previous frame, and another part of the image is from the new frame. However, this may cause undesirable effects on the viewed image, for example, if the images of the previous and new frames are drastically different. In order to prevent image tearing, some systems allow for vertical synchronization whereby when enabled, the system will not allow for image tearing, although the problems associated with input lag, described above, still persist. Therefore there is a need to minimize input lag times and the effects of image tearing, along with other undesirable effects, in the displaying of images on variable refresh rate displays.